<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Boost.TypeIndex Header Reference</title>
<link rel="stylesheet" href="../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="boost_typeindex.html" title="Chapter 39. Boost.TypeIndex 4.1">
<link rel="prev" href="boost_typeindex/examples.html" title="Examples">
<link rel="next" href="doxygen/boost_typeindex_header_reference/type__index_8hpp_1a92396e4950b1278f4df4b0919f3168be.html" title="Type definition type_index">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../boost.png"></td>
<td align="center"><a href="../../index.html">Home</a></td>
<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost_typeindex/examples.html"><img src="../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="boost_typeindex.html"><img src="../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="doxygen/boost_typeindex_header_reference/type__index_8hpp_1a92396e4950b1278f4df4b0919f3168be.html"><img src="../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_typeindex_header_reference"></a>Boost.TypeIndex Header Reference</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="boost_typeindex_header_reference.html#doxygen.boost_typeindex_header_reference.type__index_8hpp">Header &lt;boost/type_index.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="boost_typeindex_header_reference.html#doxygen.boost_typeindex_header_reference.ctti__type__index_8hpp">Header &lt;boost/type_index/ctti_type_index.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="boost_typeindex_header_reference.html#doxygen.boost_typeindex_header_reference.runtime__cast_8hpp">Header &lt;boost/type_index/runtime_cast.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="boost_typeindex_header_reference.html#doxygen.boost_typeindex_header_reference.boost__shared__ptr__cast_8hpp">Header &lt;boost/type_index/runtime_cast/boost_shared_ptr_cast.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="boost_typeindex_header_reference.html#doxygen.boost_typeindex_header_reference.pointer__cast_8hpp">Header &lt;boost/type_index/runtime_cast/pointer_cast.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="boost_typeindex_header_reference.html#doxygen.boost_typeindex_header_reference.reference__cast_8hpp">Header &lt;boost/type_index/runtime_cast/reference_cast.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="boost_typeindex_header_reference.html#doxygen.boost_typeindex_header_reference.register__runtime__class_8hpp">Header &lt;boost/type_index/runtime_cast/register_runtime_class.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="boost_typeindex_header_reference.html#doxygen.boost_typeindex_header_reference.std__shared__ptr__cast_8hpp">Header &lt;boost/type_index/runtime_cast/std_shared_ptr_cast.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="boost_typeindex_header_reference.html#doxygen.boost_typeindex_header_reference.stl__type__index_8hpp">Header &lt;boost/type_index/stl_type_index.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="boost_typeindex_header_reference.html#doxygen.boost_typeindex_header_reference.type__index__facade_8hpp">Header &lt;boost/type_index/type_index_facade.hpp&gt;</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="doxygen.boost_typeindex_header_reference.type__index_8hpp"></a>Header &lt;<a href="../../boost/type_index.hpp" target="_top">boost/type_index.hpp</a>&gt;</h3></div></div></div>
<p>Includes minimal set of headers required to use the Boost.TypeIndex library. </p>
<p>By inclusion of this file most optimal type index classes will be included and used as a <a class="link" href="doxygen/boost_typeindex_header_reference/type__index_8hpp_1a92396e4950b1278f4df4b0919f3168be.html" title="Type definition type_index">boost::typeindex::type_index</a> and <a class="link" href="doxygen/boost_typeindex_header_reference/type__index_8hpp_1acd639a0640fcc187eb762567a855b517.html" title="Type definition type_info">boost::typeindex::type_info</a>. </p>
<pre class="synopsis">

<a class="link" href="doxygen/boost_typeindex_header_reference/type__index_8hpp_1aa95e33fb9aa2d570e580cfbde489f6c6.html" title="Macro BOOST_TYPE_INDEX_REGISTER_CLASS">BOOST_TYPE_INDEX_REGISTER_CLASS</a>
<a class="link" href="doxygen/boost_typeindex_header_reference/type__index_8hpp_1a5e8825576a5e3115161687310469396a.html" title="Macro BOOST_TYPE_INDEX_FUNCTION_SIGNATURE">BOOST_TYPE_INDEX_FUNCTION_SIGNATURE</a>
<a class="link" href="doxygen/boost_typeindex_header_reference/type__index_8hpp_1aa1457292331bac605f998b53d85e4422.html" title="Macro BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING">BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING</a>
<a class="link" href="doxygen/boost_typeindex_header_reference/type__index_8hpp_1a1f36cbfc68e152f766416d8def27bb56.html" title="Macro BOOST_TYPE_INDEX_USER_TYPEINDEX">BOOST_TYPE_INDEX_USER_TYPEINDEX</a>
<a class="link" href="doxygen/boost_typeindex_header_reference/type__index_8hpp_1a9d2fd5c65259b62ed652f7011670c55a.html" title="Macro BOOST_TYPE_INDEX_FORCE_NO_RTTI_COMPATIBILITY">BOOST_TYPE_INDEX_FORCE_NO_RTTI_COMPATIBILITY</a></pre>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
  <span class="keyword">namespace</span> <span class="identifier">typeindex</span> <span class="special">{</span>
    <span class="keyword">typedef</span> <span class="identifier">platform_specific</span> <a class="link" href="doxygen/boost_typeindex_header_reference/type__index_8hpp_1a92396e4950b1278f4df4b0919f3168be.html" title="Type definition type_index"><span class="identifier">type_index</span></a><span class="special">;</span>
    <span class="keyword">typedef</span> <span class="identifier">type_index</span><span class="special">::</span><span class="identifier">type_info_t</span> <a class="link" href="doxygen/boost_typeindex_header_reference/type__index_8hpp_1acd639a0640fcc187eb762567a855b517.html" title="Type definition type_info"><span class="identifier">type_info</span></a><span class="special">;</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="identifier">type_index</span> <a class="link" href="doxygen/boost_typeindex_header_reference/type__index_8hpp_1aaa8536b5c80315f205036a85a9e8e3e2.html" title="Function template type_id"><span class="identifier">type_id</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="identifier">type_index</span> <a class="link" href="doxygen/boost_typeindex_header_reference/type__index_8hpp_1a15beb7454116a3e5aa29f30cbaad5315.html" title="Function template type_id_with_cvr"><span class="identifier">type_id_with_cvr</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="identifier">type_index</span> <a class="link" href="doxygen/boost_typeindex_header_reference/type__index_8hpp_1ae179d82aeceebc66d4fe38985bdb9e82.html" title="Function template type_id_runtime"><span class="identifier">type_id_runtime</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  <span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="doxygen.boost_typeindex_header_reference.ctti__type__index_8hpp"></a>Header &lt;<a href="../../boost/type_index/ctti_type_index.hpp" target="_top">boost/type_index/ctti_type_index.hpp</a>&gt;</h3></div></div></div>
<p>Contains <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1ctti__type__index.html" title="Class ctti_type_index">boost::typeindex::ctti_type_index</a> class that is constexpr if C++14 constexpr is supported by compiler. </p>
<p><a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1ctti__type__index.html" title="Class ctti_type_index">boost::typeindex::ctti_type_index</a> class can be used as a drop-in replacement for std::type_index.</p>
<p>It is used in situations when typeid() method is not available or BOOST_TYPE_INDEX_FORCE_NO_RTTI_COMPATIBILITY macro is defined. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
  <span class="keyword">namespace</span> <span class="identifier">typeindex</span> <span class="special">{</span>
    <span class="keyword">class</span> <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1ctti__type__index.html" title="Class ctti_type_index">ctti_type_index</a><span class="special">;</span>

    <span class="comment">// Helper method for getting <a class="link" href="">detail::ctti_data</a> of a template parameter T. </span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="doxygen.boost_typeindex_header_reference.ctti__type__index_8hpp_1a1822527e75864a16f71788788698d5ab"></a><span class="identifier">ctti_construct</span><span class="special">(</span><span class="special">)</span><span class="special">;</span>
  <span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="doxygen.boost_typeindex_header_reference.runtime__cast_8hpp"></a>Header &lt;<a href="../../boost/type_index/runtime_cast.hpp" target="_top">boost/type_index/runtime_cast.hpp</a>&gt;</h3></div></div></div>
<p>Contains the basic utilities necessary to fully emulate dynamic_cast for language level constructs (raw pointers and references). </p>
<p><a class="link" href="doxygen/boost_typeindex_header_reference/reference__cast_8hpp_1a5e0f815ef2610b51ac34d4ffb5349d7d.html" title="Function template runtime_cast">boost::typeindex::runtime_cast</a> is a drop in replacement for dynamic_cast that can be used in situations where traditional rtti is either unavailable or undesirable. </p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="doxygen.boost_typeindex_header_reference.boost__shared__ptr__cast_8hpp"></a>Header &lt;<a href="../../boost/type_index/runtime_cast/boost_shared_ptr_cast.hpp" target="_top">boost/type_index/runtime_cast/boost_shared_ptr_cast.hpp</a>&gt;</h3></div></div></div>
<p>Contains the overload of <a class="link" href="doxygen/boost_typeindex_header_reference/std__shared__ptr__cast_8hpp_1a8746ae3acba511243cdf31abe0508483.html" title="Function template runtime_pointer_cast">boost::typeindex::runtime_pointer_cast</a> for <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1shared__ptr.html" title="Class template shared_ptr">boost::shared_ptr</a> types. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1shared__ptr.html" title="Class template shared_ptr">shared_ptr</a><span class="special">;</span>
  <span class="keyword">namespace</span> <span class="identifier">typeindex</span> <span class="special">{</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">&gt;</span> 
      <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1shared__ptr.html" title="Class template shared_ptr">boost::shared_ptr</a><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span> 
      <a class="link" href="doxygen/boost_typeindex_header_reference/boost__shared__ptr__cast_8hpp_1a48db9c4fcbd1c20f02bbb12a94b791a0.html" title="Function template runtime_pointer_cast"><span class="identifier">runtime_pointer_cast</span></a><span class="special">(</span><a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1shared__ptr.html" title="Class template shared_ptr">boost::shared_ptr</a><span class="special">&lt;</span> <span class="identifier">U</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  <span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="doxygen.boost_typeindex_header_reference.pointer__cast_8hpp"></a>Header &lt;<a href="../../boost/type_index/runtime_cast/pointer_cast.hpp" target="_top">boost/type_index/runtime_cast/pointer_cast.hpp</a>&gt;</h3></div></div></div>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
  <span class="keyword">namespace</span> <span class="identifier">typeindex</span> <span class="special">{</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">&gt;</span> <span class="identifier">T</span> <a class="link" href="doxygen/boost_typeindex_header_reference/pointer__cast_8hpp_1a66cf6da45dea8507fc86b36327223cda.html" title="Function template runtime_cast"><span class="identifier">runtime_cast</span></a><span class="special">(</span><span class="identifier">U</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">&gt;</span> <span class="identifier">T</span> <a class="link" href="doxygen/boost_typeindex_header_reference/pointer__cast_8hpp_1ac94537643e7bc5a501d21cc2751625a6.html" title="Function template runtime_cast"><span class="identifier">runtime_cast</span></a><span class="special">(</span><span class="identifier">U</span> <span class="keyword">const</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">&gt;</span> <span class="identifier">T</span> <span class="special">*</span> <a class="link" href="doxygen/boost_typeindex_header_reference/pointer__cast_8hpp_1a07b884bb05ee0ef3e5dac347980fe73f.html" title="Function template runtime_pointer_cast"><span class="identifier">runtime_pointer_cast</span></a><span class="special">(</span><span class="identifier">U</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">&gt;</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">*</span> <a class="link" href="doxygen/boost_typeindex_header_reference/pointer__cast_8hpp_1ace84532a2a2564339a3f2cb830f4030c.html" title="Function template runtime_pointer_cast"><span class="identifier">runtime_pointer_cast</span></a><span class="special">(</span><span class="identifier">U</span> <span class="keyword">const</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span>
  <span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="doxygen.boost_typeindex_header_reference.reference__cast_8hpp"></a>Header &lt;<a href="../../boost/type_index/runtime_cast/reference_cast.hpp" target="_top">boost/type_index/runtime_cast/reference_cast.hpp</a>&gt;</h3></div></div></div>
<p>Contains the overload of <a class="link" href="doxygen/boost_typeindex_header_reference/reference__cast_8hpp_1a5e0f815ef2610b51ac34d4ffb5349d7d.html" title="Function template runtime_cast">boost::typeindex::runtime_cast</a> for reference types. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
  <span class="keyword">namespace</span> <span class="identifier">typeindex</span> <span class="special">{</span>
    <span class="keyword">struct</span> <a class="link" href="doxygen/boost_typeindex_header_reference/structboost_1_1typeindex_1_1bad__runtime__cast.html" title="Struct bad_runtime_cast">bad_runtime_cast</a><span class="special">;</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">&gt;</span> 
      <span class="identifier">std</span><span class="special">::</span><span class="identifier">add_lvalue_reference</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <a class="link" href="doxygen/boost_typeindex_header_reference/reference__cast_8hpp_1a5e0f815ef2610b51ac34d4ffb5349d7d.html" title="Function template runtime_cast"><span class="identifier">runtime_cast</span></a><span class="special">(</span><span class="identifier">U</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">&gt;</span> 
      <span class="identifier">std</span><span class="special">::</span><span class="identifier">add_lvalue_reference</span><span class="special">&lt;</span> <span class="identifier">constT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <a class="link" href="doxygen/boost_typeindex_header_reference/reference__cast_8hpp_1a4bec5039015928c6df6b974d08631849.html" title="Function template runtime_cast"><span class="identifier">runtime_cast</span></a><span class="special">(</span><span class="identifier">U</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  <span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="doxygen.boost_typeindex_header_reference.register__runtime__class_8hpp"></a>Header &lt;<a href="../../boost/type_index/runtime_cast/register_runtime_class.hpp" target="_top">boost/type_index/runtime_cast/register_runtime_class.hpp</a>&gt;</h3></div></div></div>
<p>Contains the macros BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST and BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS. </p>
<pre class="synopsis">

<a class="link" href="doxygen/boost_typeindex_header_reference/register__runtime__class_8hpp_1a7c9256cdd957c8893b0c997ba26825f9.html" title="Macro BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS">BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS</a>(...)
<a class="link" href="doxygen/boost_typeindex_header_reference/register__runtime__class_8hpp_1a8cb786ffc23c58379c4f346b5b88d1cc.html" title="Macro BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST">BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST</a>(...)
<a class="link" href="doxygen/boost_typeindex_header_reference/register__runtime__class_8hpp_1a23b242cbe8011c10233940830c83dcb4.html" title="Macro BOOST_TYPE_INDEX_NO_BASE_CLASS">BOOST_TYPE_INDEX_NO_BASE_CLASS</a></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="doxygen.boost_typeindex_header_reference.std__shared__ptr__cast_8hpp"></a>Header &lt;<a href="../../boost/type_index/runtime_cast/std_shared_ptr_cast.hpp" target="_top">boost/type_index/runtime_cast/std_shared_ptr_cast.hpp</a>&gt;</h3></div></div></div>
<p>Contains the overload of <a class="link" href="doxygen/boost_typeindex_header_reference/std__shared__ptr__cast_8hpp_1a8746ae3acba511243cdf31abe0508483.html" title="Function template runtime_pointer_cast">boost::typeindex::runtime_pointer_cast</a> for std::shared_ptr types. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
  <span class="keyword">namespace</span> <span class="identifier">typeindex</span> <span class="special">{</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">&gt;</span> 
      <span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span> <a class="link" href="doxygen/boost_typeindex_header_reference/std__shared__ptr__cast_8hpp_1a8746ae3acba511243cdf31abe0508483.html" title="Function template runtime_pointer_cast"><span class="identifier">runtime_pointer_cast</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span> <span class="identifier">U</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  <span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="doxygen.boost_typeindex_header_reference.stl__type__index_8hpp"></a>Header &lt;<a href="../../boost/type_index/stl_type_index.hpp" target="_top">boost/type_index/stl_type_index.hpp</a>&gt;</h3></div></div></div>
<p>Contains <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1stl__type__index.html" title="Class stl_type_index">boost::typeindex::stl_type_index</a> class. </p>
<p><a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1stl__type__index.html" title="Class stl_type_index">boost::typeindex::stl_type_index</a> class can be used as a drop-in replacement for std::type_index.</p>
<p>It is used in situations when RTTI is enabled or typeid() method is available. When typeid() is disabled or BOOST_TYPE_INDEX_FORCE_NO_RTTI_COMPATIBILITY macro is defined boost::typeindex::ctti is usually used instead of <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1stl__type__index.html" title="Class stl_type_index">boost::typeindex::stl_type_index</a>. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
  <span class="keyword">namespace</span> <span class="identifier">typeindex</span> <span class="special">{</span>
    <span class="keyword">class</span> <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1stl__type__index.html" title="Class stl_type_index">stl_type_index</a><span class="special">;</span>
  <span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="doxygen.boost_typeindex_header_reference.type__index__facade_8hpp"></a>Header &lt;<a href="../../boost/type_index/type_index_facade.hpp" target="_top">boost/type_index/type_index_facade.hpp</a>&gt;</h3></div></div></div>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
  <span class="keyword">namespace</span> <span class="identifier">typeindex</span> <span class="special">{</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Derived<span class="special">,</span> <span class="keyword">typename</span> TypeInfo<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1type__index__facade.html" title="Class template type_index_facade">type_index_facade</a><span class="special">;</span>

    <span class="comment">// noexcept comparison operators for <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1type__index__facade.html" title="Class template type_index_facade">type_index_facade</a> classes. </span>
    <span class="keyword">bool</span> <a name="doxygen.boost_typeindex_header_reference.type__index__facade_8hpp_1a0eefc76d461d00b0f4c7885197a9703d"></a><span class="keyword">operator</span><span class="special">==</span><span class="special">,</span><span class="special">!=</span><span class="special">,</span><span class="special">&lt;</span><span class="special">,</span><span class="special">...</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1type__index__facade.html" title="Class template type_index_facade">type_index_facade</a> <span class="special">&amp;</span> lhs<span class="special">,</span> 
                             <span class="keyword">const</span> <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1type__index__facade.html" title="Class template type_index_facade">type_index_facade</a> <span class="special">&amp;</span> rhs<span class="special">)</span><span class="special">;</span>

    <span class="comment">// noexcept comparison operators for <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1type__index__facade.html" title="Class template type_index_facade">type_index_facade</a> and it's TypeInfo classes. </span>
    <span class="keyword">bool</span> <a name="doxygen.boost_typeindex_header_reference.type__index__facade_8hpp_1ad3356a13a05f1f66ed0233990fb03d43"></a><span class="keyword">operator</span><span class="special">==</span><span class="special">,</span><span class="special">!=</span><span class="special">,</span><span class="special">&lt;</span><span class="special">,</span><span class="special">...</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1type__index__facade.html" title="Class template type_index_facade">type_index_facade</a> <span class="special">&amp;</span> lhs<span class="special">,</span> 
                             <span class="keyword">const</span> <span class="identifier">TypeInfo</span> <span class="special">&amp;</span> rhs<span class="special">)</span><span class="special">;</span>

    <span class="comment">// noexcept comparison operators for <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1type__index__facade.html" title="Class template type_index_facade">type_index_facade</a>'s TypeInfo and <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1type__index__facade.html" title="Class template type_index_facade">type_index_facade</a> classes. </span>
    <span class="keyword">bool</span> <a name="doxygen.boost_typeindex_header_reference.type__index__facade_8hpp_1ac25d3f9fde8306b00a291ceac35726ff"></a><span class="keyword">operator</span><span class="special">==</span><span class="special">,</span><span class="special">!=</span><span class="special">,</span><span class="special">&lt;</span><span class="special">,</span><span class="special">...</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">TypeInfo</span> <span class="special">&amp;</span> lhs<span class="special">,</span> 
                             <span class="keyword">const</span> <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1type__index__facade.html" title="Class template type_index_facade">type_index_facade</a> <span class="special">&amp;</span> rhs<span class="special">)</span><span class="special">;</span>

    <span class="comment">// Ostream operator that will output demangled name. </span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> TriatT<span class="special">,</span> <span class="keyword">typename</span> Derived<span class="special">,</span> 
             <span class="keyword">typename</span> TypeInfo<span class="special">&gt;</span> 
      <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TriatT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> 
      <a name="doxygen.boost_typeindex_header_reference.type__index__facade_8hpp_1a94b96da87ed9b336e4240bc1beb97673"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TriatT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> ostr<span class="special">,</span> 
                 <span class="keyword">const</span> <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1type__index__facade.html" title="Class template type_index_facade">type_index_facade</a><span class="special">&lt;</span> <span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">TypeInfo</span> <span class="special">&gt;</span> <span class="special">&amp;</span> ind<span class="special">)</span><span class="special">;</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Derived<span class="special">,</span> <span class="keyword">typename</span> TypeInfo<span class="special">&gt;</span> 
      <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="doxygen/boost_typeindex_header_reference/type__index__facade_8hpp_1a20a9e97693898043009d53006aaaf3c3.html" title="Function template hash_value"><span class="identifier">hash_value</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="doxygen/boost_typeindex_header_reference/classboost_1_1typeindex_1_1type__index__facade.html" title="Class template type_index_facade">type_index_facade</a><span class="special">&lt;</span> <span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">TypeInfo</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  <span class="special">}</span>
<span class="special">}</span></pre>
</div>
</div>
<div class="copyright-footer">Copyright © 2012-2025 Antony
      Polukhin<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost_typeindex/examples.html"><img src="../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="boost_typeindex.html"><img src="../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="doxygen/boost_typeindex_header_reference/type__index_8hpp_1a92396e4950b1278f4df4b0919f3168be.html"><img src="../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
